<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <p>call\apply  改变函数this指向而存在的</p>
    <p>call小弟召唤（call）大哥来使用大哥(的属性和方法)解决问题</p>
    <p>apply 大哥讲自己的属性和方法应用(apply)到小弟身上，来解决小弟的问题</p>
    <script>
        // a.call(b，ag1,ag2);  a是父级 b是子集
        // 构造函数 用来生成中国人
        function Chinese(exp, isFeng) {
            this.country = 'China';
            this.exp = exp;
            this.fengBuFeng = isFeng;
        }

        // 构造函数 用来生成河南人
        function Henan(eat, heSuan, feng) {
            this.home = 'henan';
            this.food = eat;
            // 构造函数的继承
            Chinese.call(this, heSuan, feng) // 24这个参数是给外层的Chinese的 给了内存也用不上
            // Chinese.apply(this, [heSuan, feng]) // 24这个参数是给外层的Chinese的 给了内存也用不上
            // 如果外层的Chinese有n个参数 那call方法就有n+1个参数，第一个是this，后面n个是Chinese本身的参数
        }

        var maBaoguo = new Henan('piazz', 9999, false);
        console.log(maBaoguo);
        var laoXiang = new Henan('hlt', 2, true);
        console.log(laoXiang);
    </script>
</body>
</html>